package m1;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        ////创建连接工厂,并设置连接信息
        ConnectionFactory f = new ConnectionFactory();
        f.setHost("192.168.64.140");
        f.setPort(5672);
        f.setUsername("admin");
        f.setPassword("admin");

        Connection con=f.newConnection();   //连接 mq 服务器
        Channel c=con.createChannel();//建立信道


        //在mq 服务器上，创建消息队列 helloworld
        //如果队列有了不会重复创建
        /*
        参数
        * 1.对列名
        * 2.是否持久队列（非持久队列服务器重启都会消失）
        * 3.是否是排他（独占）队列 （是否允许许多个消费者从同一个队列接收消息）
        * 4.是否自动删除（自动删除的队列，在没有消费者时，可以被服务器自动删除）
        * 5.队列其他属性
        queueDeclare：队列声明
        * */
        c.queueDeclare("helloworld", false, false, false, null);
        //向helloworld队列发送消息
        /*参数
           1.交换机 “ ” 指的是默认交换机
           2.接收数据的队列
           3.消息的其他属性设置
           4.要往队列发送的消息数据（必须是byte[]数组）
           basicPublish：基本发布
        */
        c.basicPublish("", "helloworld", null, "helloworld!".getBytes());
        System.out.println("消息已发送！");

        c.close();
        con.close();
    }
}
